package com.mxpio.erp.common.workshop.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mxpio.erp.common.annotation.BeanFieldOrder;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Date;

/**
 * @Author : 吴盼盼
 * @Datetime : 2022/10/28 23:20
 * @Desc :
 * @Modor :  Modifytime:
 * @modDesc : 生产订单 成本核算
 */
@Data
public class MoCostAccountingVO implements Serializable {

    private static final long serialVersionUID = 1L;

    // 生产订单、产品编码、产品名称、规格型号、图号、入库数量、物料编码、物料名称、规格型号、图号、物料组编码、物料组名称、单位、基本用量、已发数量、核算数量

    @Schema(description = "生产订单编号")
    @BeanFieldOrder(order = 0)
    private String bizNo;


    @Schema(description = "产品编号")
    @BeanFieldOrder(order = 1)
    private String productItemCode;

    @Schema(description = "产品名称")
    @BeanFieldOrder(order = 2)
    private String productItemName;

    @Schema(description = "产品规格型号")
    @BeanFieldOrder(order = 3)
    private String productItemSpec;

    @Schema(description = "产品图号")
    @BeanFieldOrder(order = 4)
    private String productDrawingNo;


    @Schema(description = "成品入库数量")
    @BeanFieldOrder(order = 5)
    private BigDecimal orderQuantity;


    @Schema(description = "物料编码")
    @BeanFieldOrder(order = 6)
    private String itemCode;

    @Schema(description = "物料名称")
    @BeanFieldOrder(order = 7)
    private String itemName;

    @Schema(description = "规格型号")
    @BeanFieldOrder(order = 8)
    private String itemSpec;


    @Schema(description = "图号")
    @BeanFieldOrder(order = 9)
    private String drawingNo;

    @Schema(description = "物料组编码")
    @BeanFieldOrder(order = 10)
    private String itemGroupCode;

    @Schema(description = "物料组名称")
    @BeanFieldOrder(order = 11)
    private String itemGroupName;


    @Schema(description = "单位编码")
    @BeanFieldOrder(order = 12)
    private String unitCode;
    @Schema(description = "单位名称")
    @BeanFieldOrder(order = 13)
    private String unitCodeName;
    @Schema(description = "默认仓库编码")
    @BeanFieldOrder(order = 14)
    private String whCode;
    @Schema(description = "默认仓库名称")
    @BeanFieldOrder(order = 15)
    private String whName;

    @Schema(description = "基本用量")
    @BeanFieldOrder(order = 16)
    private Double baseNum;

    @Schema(description = "已发数量")
    @BeanFieldOrder(order = 17)
    private BigDecimal pickingQuantity;

    @Schema(description = "核算数量")
    @BeanFieldOrder(order = 18)
    private Double accountQuantity;

    @Schema(description = "主制车间编码")
    @BeanFieldOrder(order = 19)
    private String mainWorkshopCode;

    @Schema(description = "主制车间")
    @BeanFieldOrder(order = 20)
    private String mainWorkshop;

    @Schema(description = "成品入库汇总数量")
    @BeanFieldOrder(order = 21)
    private BigDecimal prodInQuantitySum;

    @Schema(description = "已发料在制品数量(已领料未耗用数量)")
    @BeanFieldOrder(order = 22)
    private Double pickingQuantityLast;

    @Schema(description = "物料最后操作(领用、退料)时间")
    @BeanFieldOrder(order = 23)
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date lastPickingTime;
}
